# -*- coding: utf-8 -*-
from django.contrib import admin
from controle.models import *

from controle.forms import FornecedorForm, RevendaForm, VendeForm, ContatoForm
from ajax_select import make_ajax_form
from ajax_select.admin import AjaxSelectAdmin, AjaxTabularInline

class ItemInline(AjaxTabularInline):
    model = CompraProdutoFornecedor
    extra = 1
    readonly_fields=('valor','valortotal')
    fields = ['pedido','codigo','produtofornecedor','valorunitario','quantidade','tabela','valora','valor','valortotal','subtituir']
    exclude = ('ativo','datacompra','fornecedor')
    form = make_ajax_form(CompraProdutoFornecedor,{'produtofornecedor':'produto'})
    can_delete = False

class ItemvInline(AjaxTabularInline):
    model = CompraProdutoVendedor
    extra = 1
    readonly_fields=('valor','valortotal','qtddisp')
    exclude = ('datacompra','fornecedor')
    form = make_ajax_form(CompraProdutoVendedor,{'produtofornecedor':'produto'})

class ContatoInline(admin.StackedInline):
    model = Contatos
    form = ContatoForm
    extra = 1


class InfoInline(admin.TabularInline):
    model = CompraProdutoFornecedor
    extra = 0
    readonly_fields=('pedido','fornecedor','quantidade','valorunitario','valor','tabela','datacompra')
    exclude = ('ativo','subtituir','valora','valortotal','codigo')
    can_delete = False


class AdminFornecedor(admin.ModelAdmin):
    class Media:
        js = ("/media/js/jquery-1.8.0.js","/media/js/jquery.meio.mask.js","/media/js/tools.js",'/media/js/tiny_mce/tiny_mce_src.js','/media/js/textareas.js',)
        css = {"all":("/media/css/interna.css",)}

    form = FornecedorForm
    fieldsets = [
        ('Pessoa', {'fields': ('pessoa','nome','tipo')}),
        ('Dados', {'fields':(('nomefantasia','cnpj','inscricaoestadual',),('cpf','rg'),('comissao','tabelaprecovenda','limitecompra'))}),
        ('Contato', {'fields':(('cep', 'estado','cidade','bairro'), ('endereco','telefone', 'emailempresa'),'site',('facebook','twitter'))}),
        ('Observações', {'fields':['observacao'], 'classes':['collapse'] }),
    ]

    list_display = ['nome', 'telefone','pessoa','cidade','tabelaprecovenda']
    list_filter = ['cidade']
    search_fields = ['nome', 'nomefantasia',]
    inlines = [ContatoInline]
    save_on_top= True
    radio_fields = {'pessoa':admin.HORIZONTAL}


class AdminCompraProdutoFornecedor(AjaxSelectAdmin):
    class Media:
        js = ("/media/js/jquery-1.7.2.min.js",
              "/media/js/jquery.meio.mask.js",
              "/media/js/tools.js",
              "/media/js/jquery.fancybox.js",
              "/media/js/jquery.fancybox.css",
              "")
    form = make_ajax_form(CompraProdutoFornecedor,{'produtofornecedor':'produto'})
    fieldsets = [
        ('Pedido', {'fields':(('pedido',))}),
        ('Informações', {'fields':('produtofornecedor',('quantidade', 'valorunitario', 'valortotal','ativo'), ('datacompra','fornecedor'))}),

    ]
    list_display = ['produtofornecedor', 'quantidade', 'valorunitario','datacompra','pedido','ativo']
    list_filter = ['datacompra','ativo']
    list_display_links = ['quantidade','produtofornecedor']
    search_fields = ['produtofornecedor',]
    save_on_top= True


class AdminPedido(admin.ModelAdmin):
    class Media:
#        js = ("/media/js/jquery-1.8.0.js","/media/js/jquery.meio.mask.js","/media/js/tools.js",'/media/js/tiny_mce/tiny_mce_src.js','/media/js/textareas.js',)

        js = ('/media/js/tiny_mce/tiny_mce_src.js','/media/js/textareas.js', '/media/js/jquery-1.7.2.min.js', '/media/js/jquery.meio.mask.js', '/media/js/tools.js')
    readonly_fields=('totaldeitens','valortotalnota')
    date_hierarchy = 'datacompra'
    fieldsets = [('Dados do Pedido', {'fields':(('codigo','pnumero','fornecedor','datacompra'),('notas','totaldeitens','valortotalnota'))}),
        ('Extra', {'fields':['observacao'], 'classes':['collapse'] }),
    ]

    list_display = ['codigo','valortotalnota','totaldeitens','datacompra','fornecedor','dataentrada']
    list_display_links = ['dataentrada','codigo','valortotalnota']
    list_filter = ['datacompra','fornecedor',]
    search_fields = ['codigo','pnumero','fornecedor']
    save_on_top= True
    inlines = [ItemInline]

class ProdutoAdmin(admin.ModelAdmin):
    class Media:

        js = ("/media/js/jquery-1.8.0.js","/media/js/jquery.meio.mask.js","/media/js/tools.js",'/media/js/tiny_mce/tiny_mce_src.js','/media/js/textareas.js', "/media/js/modal.js", )

    fieldsets = [('Dados do Produto', {'fields':((('nome','marca','codigo','valor'),('imagens','lucro','desconto','quantidade','qtdloja')))}),
                     ('Obeservações', {'fields':['observacao'], 'classes':['collapse'] }),
        ]
    readonly_fields=('quantidade','id','qtdloja')
    list_display = ['ativo','codigo','nome','marca','dt_cadastro','quantidade','valor']
    list_display_links = ['nome','marca','ativo','codigo']
    list_filter = ['marca','dt_cadastro']
    search_fields = ['codigo','nome','marca']
    inlines = [InfoInline]
    save_on_top= True


class AdminRevenda(admin.ModelAdmin):
    class Media:
        js = ( '/media/js/jquery-1.7.2.min.js', '/media/js/tiny_mce/tiny_mce_src.js','/media/js/textareas.js', '/media/js/jquery.meio.mask.js', '/media/js/tools.js')
    form = RevendaForm
    readonly_fields=('totaldeitens','valortotalnota')
    date_hierarchy = 'datacompra'

    fieldsets = [('Dados do Pedido', {'fields':(('codigo','datacompra','vendedor'),('notas','totaldeitens','valortotalnota'))}),
        ('Extra', {'fields':['observacao'], 'classes':['collapse'] }),
    ]

    list_display = ['codigo','valortotalnota','totaldeitens','datacompra','vendedor','dataentrada']
    list_display_links = ['dataentrada','codigo','valortotalnota']
    list_filter = ['datacompra','vendedor',]
    search_fields = ['codigo','vendedor']
    save_on_top= True
    inlines = [ItemvInline]

admin.site.register(Marcas)
admin.site.register(Tabela)
admin.site.register(Tipo_Empresa)
admin.site.register(GaleriaFotos)
admin.site.register(Produto,ProdutoAdmin)
admin.site.register(Fornecedor, AdminFornecedor)
admin.site.register(Pedido,AdminPedido)
admin.site.register(CompraProdutoVendedor)
admin.site.register(Revenda,AdminRevenda)
admin.site.register(CompraProdutoFornecedor, AdminCompraProdutoFornecedor)